using System.Collections.Generic;
using System.ComponentModel;
using UnityEngine;

namespace UFrame
{
    public enum AnimatorStateEnum
    {
        AnimatorIDLE = 0,
        AnimatorMOVE = 1,
        AnimatorHIT = 2,
        AnimatorSKILL = 3,
        AnimatorFIGHTIDLE = 4,
        AnimatorDead = 5,
        AnimatorShow = 6,
        AnimatorSpecialIdle = 7,
        AnimatorCaiji = 8,

        // 坐骑相关
        AnimatorRidingIdle = 9,
        AnimatorRidingMove = 10,
        AnimatorWingIdle = 11,
        AnimatorWingMove = 12,
        AnimatorWingCharge = 13,
        AnimatorAircraftIdle = 14,
        AnimatorAircraftMove = 15,
        AnimatorAircraftCharge = 16,
        AnimatorTurnFall = 17,
        AnimatorFallOnLand = 18,
        AnimatorFall = 19,

        // 其他功能
        AnimatorSkillDrift = 98,
        AnimatorPreSkill = 99,
    }


    #region 盘子脸专用数据

    public class SkillEditorPOD
    {
        public int skillId;

        public List<SkillAnimationEditorPOD> list = new List<SkillAnimationEditorPOD>();
    }

    /// <summary>
    /// 技能类型
    /// </summary>
    public class SkillTypePOD
    {
        /// <summary>
        /// 前摇时长
        /// </summary>
        public float ShakeBeforeTimer;
        public float findTargetDisance;


    }


    /// <summary>
    /// 技能特效数据
    /// </summary>
    public class SkillEffectPOD
    {
        public GameObject prefab;
        public float appearTime;
        public float totalTime;
        public string audioName;
    }

    /// <summary>
    /// 技能动作信息
    /// </summary>
    public class SkillAnimationEditorPOD
    {
        public string name;
        public List<SkillAnimationTime> eventList = new List<SkillAnimationTime>();
        public float bootsDistance = 10f;


    }


    /// <summary>
    /// 技能时间事件
    /// </summary>
    public class SkillAnimationTime
    {
        public float triggerTime;
        public List<string> parameter;
    }


    /// <summary>
    /// 技能特效类型
    /// </summary>
    public enum ESkillEffectType
    {
        //"固定型", "追踪型", "地面型", "运动型"
        [Description("固定型")] Fixation = 0,
        [Description("追踪型")] Trace = 1,
        [Description("地面型")] Ground = 2,
        [Description("运动型")] Movement = 3,
    }

    /// <summary>
    /// "抖动", "推进", "拉远", "还原缩放"
    /// </summary>
    public enum EShakeCamera
    {
        [Description("抖动")]
        Shake,
        [Description("推进")]
        Boost,
        /// <summary>
        /// 拉远
        /// </summary>
        [Description("推进")]
        ZoomOut,
        [Description("还原缩放")]
        RestoreZoom,
    }

    /// <summary>
    /// 技能操作类型
    /// </summary>
    public enum ESkillOperation
    {
        ControlArea,
        NoControlArea,
        Self,
        LockTarget,
        OffsetMove,
    }

    /// <summary>
    ///  目标类型  "敌对", "友军", "友军或自身"
    /// </summary>
    public enum ETargetType
    {
        Hostility,
        Friendly,
        All,
    }

    /// <summary>
    /// 一个生物基本信息
    /// </summary>
    public class SkillCreatureInfoPOD
    {
        public GameObject prefab;

    }


    #endregion
}